package com.ruoyi.tzai.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 资讯文章对象 tzai_news_article
 * 
 * @author tzai
 * @date 2025-10-27
 */
public class NewsArticle extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 文章ID */
    private Long articleId;

    /** 处理模式(summary=摘要处理, full=全文处理) */
    @Excel(name = "处理模式", readConverterExp = "summary=摘要处理,full=全文处理")
    private String processMode;

    /** 标题 */
    @Excel(name = "标题")
    private String title;

    /** 资讯内容 */
    private String content;

    /** 关联公司ID */
    @Excel(name = "关联公司ID")
    private Long companyId;

    /** 资讯类型(earnings_call=业绩电话会, official_blog=官方博客, interview=高管/创始人访谈, investment_review=投资点评) */
    @Excel(name = "资讯类型", readConverterExp = "earnings_call=业绩电话会,official_blog=官方博客,interview=高管/创始人访谈,investment_review=投资点评")
    private String articleType;

    /** 公司代码 */
    @Excel(name = "公司代码")
    private String companyCode;

    /** 公司中文名称 */
    @Excel(name = "公司名称")
    private String companyNameCn;

    /** 来源 */
    @Excel(name = "来源")
    private String source;

    /** 原文链接 */
    @Excel(name = "原文链接")
    private String sourceUrl;

    /** 发布时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date publishTime;

    /** 处理状态(0待处理 1AI处理中 2TTS生成中 3已完成 4失败) */
    @Excel(name = "处理状态", readConverterExp = "0=待处理,1=AI处理中,2=TTS生成中,3=已完成,4=失败")
    private String status;

    /** 使用的AI模型ID */
    private Long aiModelId;

    /** 使用的TTS引擎ID */
    private Long ttsEngineId;

    /** 处理日志 */
    private String processLog;

    /** 音频时长（格式：MM:SS，如 03:45） */
    private String audioDuration;

    public void setArticleId(Long articleId) 
    {
        this.articleId = articleId;
    }

    public Long getArticleId() 
    {
        return articleId;
    }

		public String getProcessMode() 
		{
			return processMode;
		}

		public void setProcessMode(String processMode) 
		{
			this.processMode = processMode;
		}

    public void setTitle(String title) 
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }

    public void setContent(String content) 
    {
        this.content = content;
    }

    public String getContent() 
    {
        return content;
    }

    public void setCompanyId(Long companyId) 
    {
        this.companyId = companyId;
    }

    public Long getCompanyId() 
    {
        return companyId;
    }

    public void setArticleType(String articleType) 
    {
        this.articleType = articleType;
    }

    public String getArticleType() 
    {
        return articleType;
    }

    public void setCompanyCode(String companyCode) 
    {
        this.companyCode = companyCode;
    }

    public String getCompanyCode() 
    {
        return companyCode;
    }

    public void setCompanyNameCn(String companyNameCn) 
    {
        this.companyNameCn = companyNameCn;
    }

    public String getCompanyNameCn() 
    {
        return companyNameCn;
    }

    public void setSource(String source) 
    {
        this.source = source;
    }

    public String getSource() 
    {
        return source;
    }

    public void setSourceUrl(String sourceUrl) 
    {
        this.sourceUrl = sourceUrl;
    }

    public String getSourceUrl() 
    {
        return sourceUrl;
    }

    public void setPublishTime(Date publishTime) 
    {
        this.publishTime = publishTime;
    }

    public Date getPublishTime() 
    {
        return publishTime;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setAiModelId(Long aiModelId) 
    {
        this.aiModelId = aiModelId;
    }

    public Long getAiModelId() 
    {
        return aiModelId;
    }

    public void setTtsEngineId(Long ttsEngineId) 
    {
        this.ttsEngineId = ttsEngineId;
    }

    public Long getTtsEngineId() 
    {
        return ttsEngineId;
    }

    public void setProcessLog(String processLog) 
    {
        this.processLog = processLog;
    }

    public String getProcessLog() 
    {
        return processLog;
    }

    public void setAudioDuration(String audioDuration) 
    {
        this.audioDuration = audioDuration;
    }

    public String getAudioDuration() 
    {
        return audioDuration;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("articleId", getArticleId())
            .append("title", getTitle())
			.append("processMode", getProcessMode())
            .append("companyId", getCompanyId())
            .append("articleType", getArticleType())
            .append("companyCode", getCompanyCode())
            .append("companyNameCn", getCompanyNameCn())
            .append("source", getSource())
            .append("sourceUrl", getSourceUrl())
            .append("publishTime", getPublishTime())
            .append("status", getStatus())
            .append("aiModelId", getAiModelId())
            .append("ttsEngineId", getTtsEngineId())
            .append("processLog", getProcessLog())
            .append("audioDuration", getAudioDuration())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}

